78. Subsets
题目 78. Subsets
思路分析
代码实现
import java.util.ArrayList;
import java.util.List;
class Solution {
List<Integer> path = new ArrayList<>();
List<List<Integer>> ans = new ArrayList<>();
public List<List<Integer>> subsets(int[] nums) {
path.clear();
ans.clear();
dfs(nums, 0);
return ans;
}
void dfs(int[] nums, int u) {
if (u == nums.length) {
ans.add(new ArrayList<>(path));
return;
}
// 1. 不选当前数字 nums[u],直接考虑下一个
dfs(nums, u + 1);
// 2. 选当前数字 nums[u]
path.add(nums[u]);
dfs(nums, u + 1);
path.remove(path.size() - 1);
}
}
💬 评论